<!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
<stack>
<name>in</name>
<id>-1</id>
<cardCount>65</cardCount>
<cardID>5894</cardID>
<listID>3053</listID>
<cantModify><false /></cantModify>
<cantDelete><false /></cantDelete>
<cantAbort><false /></cantAbort>
<cardSize>
<width>512</width>
<height>342</height>
</cardSize>
<script>on idleglobal MOUSE_TRACKER, IDLE_TIMER, MAX_IDLE_TIME, DIVIDING_LINEget the mouselocif the optionkey is down thenvisual effect dissolve to blackvisual effect dissolvego to card "main menu"exit to hypercardend ifif MOUSE_TRACKER = the mouseloc thenget the secondssubtract IDLE_TIMER from itif it > MAX_IDLE_TIME thenpromptoid "Please move the mouse"put the ticks into START_TIMErepeat while the ticks - START_TIME < 300if the mouseloc <> MOUSE_TRACKER thenput the seconds into IDLE_TIMERput the mouseloc into MOUSE_TRACKERclose window "promptoid"exit idleend ifend repeatclose window "promptoid"put the seconds into IDLE_TIMERput the mouseloc into MOUSE_TRACKERvisual effect dissolve to blackvisual effect dissolvego to card "main menu"exit to hypercardend ifelseput the seconds into IDLE_TIMERput the mouseloc into MOUSE_TRACKERend ifend idleon ClickWaitglobal MAX_IDLE_TIMEput empty into TOTAL_WAIT_TIMEput MAX_IDLE_TIME * 60 into MAX_WAIT_TIMEput the mouseloc into MOUSE_TRACKERrepeat while the mouseclick is true-- Clean out leftover mouseclicksend repeatset cursor to "face 1"put 1 into CURRENT_FACErepeatif the optionkey is "down" thenvisual effect dissolve to blackvisual effect dissolvego to card "main menu"exit to hypercardelseif the mouseclick then exit repeatend ifif inkey() is " " then exit repeatput the random of 20 into WAIT_TEMPadd 50 to WAIT_TEMPwait WAIT_TEMPadd WAIT_TEMP to TOTAL_WAIT_TIMEif TOTAL_WAIT_TIME > MAX_WAIT_TIME thenif the mouseloc = MOUSE_TRACKER thenpromptoid "Please move the mouse"put the ticks into START_TIMEput FALSE into FALSE_ALARMrepeat while the ticks - START_TIME < 300if the mouseloc <> MOUSE_TRACKER thenput TRUE into FALSE_ALARMexit repeatend ifend repeatclose window "promptoid"if FALSE_ALARM thenput the mouseloc into MOUSE_TRACKERput 0 into TOTAL_WAIT_TIMEelsevisual effect dissolve to blackvisual effect dissolvego to card "main menu"exit to hypercardend ifelseput the mouseloc into MOUSE_TRACKERput 0 into TOTAL_WAIT_TIMEend ifend ifif CURRENT_FACE is 1 thenput the random of 20 into CURRENT_FACEput "face " & CURRENT_FACE into NEW_FACEset cursor to NEW_FACEelse if CURRENT_FACE is 2 thenset cursor to "face 1"put 1 into CURRENT_FACEelseput the random of 20 into CURRENT_FACEif CURRENT_FACE is 2 then put 1 into CURRENT_FACEput "face " & CURRENT_FACE into NEW_FACEset cursor to NEW_FACEend ifend repeatset cursor to noneend ClickWaiton openstackglobal USERLEVEL_SAVEglobal WAIT_INTERVALglobal MYVOLUMEglobal VOLUME_SAVEglobal EFFECT_SPEEDglobal SPEEDglobal LOG_FLAGglobal MAX_IDLE_TIMEglobal IDLE_TIMERglobal MOUSE_TRACKERglobal DIVIDING_LINEhide menubarhide titlebarput the screenrect into SCREEN_BORDERput the rect of card window into CARD_BORDERput item 3 of SCREEN_BORDER - item 1 of SCREEN_BORDER into SCREEN_WIDTHput item 4 of SCREEN_BORDER - item 2 of SCREEN_BORDER into SCREEN_HEIGHTput item 3 of CARD_BORDER - item 1 of CARD_BORDER into CARD_WIDTHput item 4 of CARD_BORDER - item 2 of CARD_BORDER into CARD_HEIGHTput (SCREEN_WIDTH - CARD_WIDTH) / 2 into item 1 of TOP_LEFTput (SCREEN_HEIGHT - CARD_HEIGHT) / 2 into item 2 of TOP_LEFTset the loc of card window to TOP_LEFTset the cantmodify of this stack to trueset the cantpeek of this stack to trueset the blindtyping to falseput the userlevel into USERLEVEL_SAVEput 60 into WAIT_INTERVALset the userlevel to 2put volume(4) into VOLUME_SAVEput 4 into MYVOLUMEsend updatevolume to card button "slider 1" of card "controls"put EMPTY into LOG_FLAGput 120 into MAX_IDLE_TIMEput 0 into IDLE_TIMERput the mouseloc into MOUSE_TRACKERget the rect of the card windowput ( item 3 of it - item 1 of it ) / 2 into DIVIDING_LINEend openstackon closestackglobal USERLEVEL_SAVEglobal VOLUME_SAVEset the userlevel to USERLEVEL_SAVEput volume(VOLUME_SAVE) into TEMPend closestackon suspendstackglobal USERLEVEL_SAVEglobal VOLUME_SAVEput the userlevel into TEMPset the userlevel to USERLEVEL_SAVEput TEMP into USERLEVEL_SAVEput volume(VOLUME_SAVE) into VOLUME_SAVEend suspendstackon resumestackglobal USERLEVEL_SAVEglobal VOLUME_SAVEput the userlevel into TEMPset the userlevel to USERLEVEL_SAVEput TEMP into USERLEVEL_SAVEput volume(VOLUME_SAVE) into VOLUME_SAVEend resumestackon workset the userlevel to 5set the cantmodify of this stack to falseset the cantpeek of this stack to falseend workon useset the cantmodify of this stack to trueset the cantpeek of this stack to trueend useon record_answer MODULE, QUESTION, RIGHTWRONGend record_answerfunction significantto WORK,PLACESrepeat while first char of WORK is "0"delete first char of WORKif WORK is EMPTY thenreturn FALSEexit significanttoend ifend repeatput offset( ".", WORK ) into DECIMALif DECIMAL > 1 thenif length( WORK ) = PLACES + 1 thenreturn TRUEelsereturn FALSEend ifelserepeat while char DECIMAL+1 of work is "0"add 1 to DECIMALend repeatif (length( WORK ) - DECIMAL) = PLACES thenreturn TRUEelsereturn FALSEend ifend ifend significanttofunction numberVerify containerput the charToNum of "0" into baseput the charToNum of "." into aperiodput the charToNum of " " into ablankput the charToNum of "-" into aminusput 0 into isanumberput false into seenAPeriodput false into numberStartedput false into numberFinishedput false into seenASignrepeat with i = 1 to the number of characters in line 1 of containerput (the charToNum of char i of container) into testif test is aperiod thenif numberFinished or seenAperiod thenput i into isanumberexit repeatelseput true into seenAPeriodput true into numberStartedend ifelse if test is aminus thenif numberStarted or seenASign thenput i into isanumberexit repeatelseput true into seenASignput true into numberStartedend ifelse if test is ablank and numberStarted and not numberFinished thenput true into numberFinishedelse if test is not ablank thenif numberFinished thenput i into isanumberexit repeatelse if ((test-base) < 0) or ((test-base) > 9) thenput i into isanumberexit repeatelseput true into numberStartedend ifend ifend repeatreturn isanumberend numberVerifyon loginopen file "Hyperchem Records"read from file "Hyperchem Records" for 16384repeat until it is EMPTYput it into PAST_ENTRIESread from file "Hyperchem Records" for 16384end repeatput EMPTY into USERNAMEif USERNAME is empty thenask "Please type your name or ID number:"repeat while it is emptyask "Please type your name or ID number:"end repeatput it into USERNAMEend ifput USERNAME & "," & the short name of this stack & "," &¬the time & "," & the date & RETURN into THIS_ENTRYwrite THIS_ENTRY to file "Hyperchem Records"close file "Hyperchem Records"end loginon dorightpush cardgo to card "correct"play "bonus"flash 3pop cardend dorighton dowrongpush cardgo to card "wrong"flash 3pop cardend dowrong</script>